【iOSDC Japan 2023 レポート】「iOSではじめるフォトグラメトリ」を聞いてきた。
はじめに
年に一度のiOSエンジニアの為のお祭り iOSDC Japan 2023に参加しています。
せっかくなので、参加したセッションのレポートを書きたいと思います。
iOSではじめるフォトグラメトリ
登壇者
- shu223さん
概要
フォトグラメトリは写真から3Dモデルを生成する技術です。町並みの3Dモデル化や、物体の3Dモデル化等に利用されます。消えゆくものを三次元データとして保存できることから、文化財の記録や考古学分野でも活躍しています。今やLiDAR搭載iPhoneも登場し、スマホ1台でフォトグラメトリが楽しめる時代になっています。個人的には、「空間の記念撮影」として泊まったホテルや住んでいたアパートの部屋を撮っておいたりしています。
本トークでは、iOS/iPhoneを用いたフォトグラメトリの手法や、Object Capture API、RoomPlan、ARKit等々のAPIについて解説します。フォトグラメトリの「中身」を知ることで、フォトグラメトリ with iOSをもっと楽しめるようになるでしょう。現実世界からの3Dモデル生成をマスターし、来るべきSpatial Computing時代に備えましょう。
引用: fortee
資料
感想
フォトグラメトリとは、写真から3Dモデルを生成する技術で、iPhoneで写真を撮影して、簡単に3Dモデルが完成。
↑のスキャンにより生成された3Dモデル #iosdc pic.twitter.com/ECDBSLEM7w
— 堤修一 / Shuichi Tsutsumi (@shu223) September 4, 2023
ちょうど、「子どものフィギュアたちを3Dモデルにして、飼ったり出来たら面白いのでは?」と思っていたところだったので非常に興味深く聞かせていただきました。
しかも、フォトグラメトリの最小実装は2行とのことで非常にシンプルに使うことが出来そうです。
今回はObject Capture API
を使って空間の3Dモデルを作れないか実証していった内容でした。
Image Captureは動画には対応していないという課題も「動画からフレーム画像を抽出すれば解決」とあっさり解決していたのもすごかったです。
空間3Dモデルの撮影1回目では、テクスチャがとても汚いモデルが出来上がりました。原因は、抽出したフレームがブレブレだったことからブレ度合いの判定して、ブレていそうなものは除外をすると以前より綺麗なモデルになっていました。
撮影2回目では、全体的に綺麗に仕上がったが、空にメッシュが生成されてしまう問題が発生してしまいました。ここでも「マスクを与えて空の部分をCoreMLで空マスクを生成で解決」とあっさり解決していました。
実証中に次から次へと出てくる問題でも、バッサバッサと解決していく姿が技術侍みたいでとてもかっこよかったです。
最終的に出来たiPhoneで撮影した空間モデルの品質も高かったです。フォトグラメトリにとても興味が出てきたセッションでした。
おわりに
次はiOSDC 2016のこの発表を見て、
海外登壇について勉強させてもらいます。
iOSDC 2023 レポート関連
Day0
- 「タクシーアプリの多言語対応・ローカライズにおける課題と解決策」を聞いてきた。
- 「Appleにおけるプライバシーの全容を把握する」を聞いてきた。
- 「SwiftUIの進化についていくためにやったこと」を聞いてきた。
- 「SharePlayの歴史と進化 - そしてvisionOSへ」を聞いてきた。
- 「UIKit ベースの Custom UIContentConfiguration API を用いた複雑なカスタムセルの作り方」を聞いてきた。
Day1
- 「TextKit 2 時代の iOS のキーボードとテキスト入力と表示のすべて」を聞いてきた。
- 「PushToTalkで作るトランシーバー」を聞いてきた。
- 「6年間運用したiOSアプリのリアーキテクトについて具体的に解説」を聞いてきた。
- 「Mastering SwiftSyntax」を聞いてきた。
- 「配信アプリのためのリアルタイムプッシュ通知ぼかしの夢 〜低負荷で高速なプライバシー保護を目指して」を聞いてきた。
- 「macOSで自分のカメラを作ってみよう – Core Media IO Extension」を聞いてきた。
- 基礎から理解する!来年春までに対応すべきプライバシーの変更点
- 「UIのブラックボックスを探る」を聞いてきた。
- 「なぜ、弊社はFlutterを捨ててネイティブ化(Swift / Kotlin)にコミットしたのか」を聞いてきた。
- 「正規表現を”微分”する!?爆速で自作できる正規表現エンジン」を聞いてきた。
- 「一般的な通信でも使えるバックグランドURLSessionの活用方法」を聞いてきた。
- 「SwiftUIでの非同期処理データの状態管理を考える」を聞いてきた。